iT邦幫忙

2024 iThome 鐵人賽

DAY 12
0
生成式 AI

RAG自己來系列:客服機器人系列 第 12

[Day 12] 圖形化文字生成工具

  • 分享至 

  • xImage
  •  

有了前端的工具,那也不能少了能幫助我們讀取並且應用的文字生成工具 text-generation-webui,這專案前端頁面也是使用 Gradio 去建構的

安裝環境

Step 1 - 下載工具

點選Github專案連結後,依自己習慣,用指令 clone 或者下載 zip 都可以

https://ithelp.ithome.com.tw/upload/images/20240920/20146555udtKgswh71.png

Step 2 - 安裝 Cuda 開發套件

首先先確認自己的 Nvidia 驅動版本

在終端中輸入以下指令並且確認 Cuda 最高支援版本

nvidia-smi

https://ithelp.ithome.com.tw/upload/images/20240920/20146555lovet66EUD.png

可依自己的作業系統環境,如 WindowsLinux 參考官方的安裝文檔,進行操作,

如範例圖所示,上面顯示的版本為 "12.2",那麼 Cuda 的版本盡量不要高於 12.2

建議安裝 11.8 與 12.1 (後面會說為什麼)

如果是 Linux 的使用者要記得為 Cuda 設定環境變數

export PATH=/usr/local/cuda/bin:$HOME/.local/bin:$HOME/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

透過以下指令確認是否有讀到 Cuda 函式庫

nvcc -V

# output
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Mon_Apr__3_17:16:06_PDT_2023
Cuda compilation tools, release 12.1, V12.1.105
Build cuda_12.1.r12.1/compiler.32688072_0

Step 3 - 安裝 Python 套件

為了不與系統環境混置,在使用此工具時,強烈建議使用虛擬環境

python3 -m venv venv
# Linux 
source venv/bin/activate

# Windows
.\venv\Scripts\activate

再來安裝與系統 Cuda 版本,相符的 Pytorch

https://ithelp.ithome.com.tw/upload/images/20240920/201465554Fd7TYluBI.png

這邊由於官方是以 11.8 和 12.1 的兩個 Cuda 版本去編譯的,所以像我的 Cuda 版本是 12.1,就選擇 12.1 的 Pytorch 版本

所以先安裝完原作者提供的依賴套件後,再另外進行安裝 Pytorch

pip install -r requirements.txt

pip install torch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 --index-url https://download.pytorch.org/whl/cu121

Step 4 - 啟動前端服務

輸入以下指令即可開啟文字生成服務

python server.py --trust-remote-code

https://ithelp.ithome.com.tw/upload/images/20240920/20146555nAC2Bc3LJs.png

打開瀏覽器並且在網址列輸入127.0.0.1:7860,看到以下畫面代表前端已經就緒了

https://ithelp.ithome.com.tw/upload/images/20240920/20146555OIaoqIQK1C.png


介紹常用的分頁

Chat

https://ithelp.ithome.com.tw/upload/images/20240920/20146555fzpW6aLLcN.png

在 "Model" 頁面讀取完模型後,可在此分頁中與模型互動

註:原作者也有提供來自社群共同開發的擴充工具可以使用

https://ithelp.ithome.com.tw/upload/images/20240920/20146555b2Uty57e0s.png


Model

https://ithelp.ithome.com.tw/upload/images/20240920/20146555lYNFk6uRiX.png

左邊可以在放入欲使用的大型語言模型後,選擇並且讀取它們

右邊則是可以選擇在 "Training" 頁面微調完的 lora 權重檔


Training

https://ithelp.ithome.com.tw/upload/images/20240920/20146555aPpstBVBqu.png

在這邊可以將自己準備好的資料集進行微調,資料格式可參考官方維基

下載模型

抱臉上存放了非常大量的模型權重檔,如大家常常聽到的 Llama、Mistral、Gemma 或者 GPT2 等等的,都可以在這個網站上下載

https://ithelp.ithome.com.tw/upload/images/20240920/20146555CScxhVy5jI.png

目前是最為推薦 Gemma-2-9b-it 這個語言模型,他是在眾多小型模型裡面,表現相對好的,所以我們要在文字生成工具的 "models" 資料夾底下下載這個模型

注意

  • 官方設定存取這個模型需要接受一些協議,只要辦完帳號登入再點擊Acknowledge license就可以了

https://ithelp.ithome.com.tw/upload/images/20240920/20146555lZfYy3Xfuc.png

  • 由於像這種大檔案的模型會用 lfs 的形式去儲存,所以我們也需要透過一些步驟去下載這些模型,詳細可參考官網

  • 我們終端環境也需要登入 huggingface

    • Step 1

      右上角點擊個人頭貼後,點擊Settings

      https://ithelp.ithome.com.tw/upload/images/20240920/20146555kSrnhgZ4ZB.png

    • Step 2

      左側點擊Access Tokens後右側點選Create new token
      https://ithelp.ithome.com.tw/upload/images/20240920/201465555XaUJ0pdfd.png
      https://ithelp.ithome.com.tw/upload/images/20240920/20146555PgSKD1vCUM.png

    • Step 3

      Type 這邊我們選擇 "Read" 名字則是依自己的喜好去取就可以了

      https://ithelp.ithome.com.tw/upload/images/20240920/20146555q2RDHF4w8E.png

      再點選Create token後會彈出一個畫面,這時複製畫面上的 "hf" 開頭的字串

      https://ithelp.ithome.com.tw/upload/images/20240920/201465555gRpQ4W7bJ.png

    • Step 4

      終端的環境我們也要安裝 Python 套件

      pip install huggingface-hub
      

      在終端中輸入huggingface-cli login後貼上剛剛複製的 Token 就可以了

      https://ithelp.ithome.com.tw/upload/images/20240920/201465558XJpn4LacE.png

切換到指定目錄底下就可以開始 clone 模型了~~

cd text-generation-webui/models

git lfs install
git clone https://huggingface.co/google/gemma-2-9b-it

讀取 & 使用模型

這時回到 Model 的頁面並且選擇 Gemm2-2-9b-it 後勾選load-in-4bit後再點 Load 就可以了

https://ithelp.ithome.com.tw/upload/images/20240920/20146555s1SaV2obFR.png

這時回到 Chat 的頁面並且測試問一個問題,有出現結果就可以了
https://ithelp.ithome.com.tw/upload/images/20240920/20146555ZTMX9OEMTB.png

參考資料


上一篇
[Day 11] 介紹 Gradio -- 應用篇
下一篇
[Day 13] 文字生成「服務」
系列文
RAG自己來系列:客服機器人30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言